-- @Author: 作者QQ381990860
-- @Date:   2022-04-25 08:30:02
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-05-09 17:41:53
--======================================================================--
-- @作者: QQ381990860
-- @创建时间:   2019-12-03 02:17:19
-- @Last Modified time: 2021-09-08 15:57:14
--======================================================================--
function 装备处理类:宝石合成(id, 格子1, 格子2)
  self.宝石id1 = 玩家数据[id].角色.道具.包裹[格子1]
  self.宝石id2 = 玩家数据[id].角色.道具.包裹[格子2]
  if 玩家数据[id].物品[self.宝石id1]==nil or 玩家数据[id].物品[self.宝石id2]==nil then
        发送数据(玩家数据[id].连接id, 7, "#y/物品不存在")
         道具处理类:索要打造道具(id, "包裹","合成")
    return
  elseif  玩家数据[id].物品[self.宝石id1].名称 == "碎石锤" or 玩家数据[id].物品[self.宝石id2].类型== "碎石锤" or 玩家数据[id].物品[self.宝石id1].名称 == "超级碎石锤" or 玩家数据[id].物品[self.宝石id2].类型== "超级碎石锤"  then
      if 玩家数据[id].物品[self.宝石id1].名称~=玩家数据[id].物品[self.宝石id2].名称 then
          发送数据(玩家数据[id].连接id, 7, "#y/只有相同的碎石锤才能合成")
          道具处理类:索要打造道具(id, "包裹","合成")
          return
      elseif 玩家数据[id].物品[self.宝石id1].等级~=玩家数据[id].物品[self.宝石id2].等级 then
          发送数据(玩家数据[id].连接id, 7, "#y/只有相同等级的碎石锤才能合成")
          道具处理类:索要打造道具(id, "包裹","合成")
          return
      else

          local 合成几率 = 100 - 玩家数据[id].物品[self.宝石id1].等级 * 10+玩家数据[id].角色.剧情技能[1].等级*3
          玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 + 1
          玩家数据[id].物品[self.宝石id2] = nil
          玩家数据[id].角色.道具.包裹[格子2] = nil
          if math.random(100) >= 合成几率 then
            玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 - 1
            发送数据(玩家数据[id].连接id, 7, "#y/合成失败，你损失了一颗" .. 玩家数据[id].物品[self.宝石id1].名称)
          else
            发送数据(玩家数据[id].连接id, 7, "#y/你获得了一颗#r/" .. 玩家数据[id].物品[self.宝石id1].等级 .. "#y/级" .. 玩家数据[id].物品[self.宝石id1].名称)
          end

          发送数据(玩家数据[id].连接id, 3006, "66")
          道具处理类:索要打造道具(id, "包裹","合成")

      end
    elseif  玩家数据[id].物品[self.宝石id1].名称 == "钟灵石" or 玩家数据[id].物品[self.宝石id2].类型== "钟灵石"  then
      if 玩家数据[id].物品[self.宝石id1].技能~=玩家数据[id].物品[self.宝石id2].技能 then
          发送数据(玩家数据[id].连接id, 7, "#y/只有相同的特性的钟灵石才能合成")
          道具处理类:索要打造道具(id, "包裹","合成")
          return
      elseif 玩家数据[id].物品[self.宝石id1].等级~=玩家数据[id].物品[self.宝石id2].等级 then
          发送数据(玩家数据[id].连接id, 7, "#y/只有相同等级的钟灵石才能合成")
          道具处理类:索要打造道具(id, "包裹","合成")
          return
      else
          玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 + 1
          玩家数据[id].物品[self.宝石id2] = nil
          玩家数据[id].角色.道具.包裹[格子2] = nil
          发送数据(玩家数据[id].连接id, 7, "#y/你获得了#r/" .. 玩家数据[id].物品[self.宝石id1].等级 .. "#y/级" .. 玩家数据[id].物品[self.宝石id1].名称)
          发送数据(玩家数据[id].连接id, 3006, "66")
          道具处理类:索要打造道具(id, "包裹","合成")
      end
  elseif  玩家数据[id].物品[self.宝石id1].类型 ~= "宝石" or 玩家数据[id].物品[self.宝石id2].类型 ~= "宝石" then
    发送数据(玩家数据[id].连接id, 7, "#y/只有宝石才能合成")
     道具处理类:索要打造道具(id, "包裹","合成")
    return
  elseif  玩家数据[id].物品[self.宝石id1].名称 ~= 玩家数据[id].物品[self.宝石id2].名称 then
    发送数据(玩家数据[id].连接id, 7, "#y/只有相同的名称的宝石才能合成")
     道具处理类:索要打造道具(id, "包裹","合成")
    return
  elseif  玩家数据[id].物品[self.宝石id1].等级 ~= 玩家数据[id].物品[self.宝石id2].等级 then
    发送数据(玩家数据[id].连接id, 7, "#y/只有相同的等级的宝石才能合成")
     道具处理类:索要打造道具(id, "包裹","合成")
    return
  else
    if 玩家数据[id].物品[self.宝石id1].等级 ==nil then
         发送数据(玩家数据[id].连接id, 7, "#y/数据等级错误，请联系GM处理")
      return
    end
    local 合成几率 = 100 - 玩家数据[id].物品[self.宝石id1].等级 * 5+玩家数据[id].角色.剧情技能[1].等级*3
    玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 + 1
    玩家数据[id].物品[self.宝石id2] = nil
    玩家数据[id].角色.道具.包裹[格子2] = nil
    if 玩家数据[id].物品[self.宝石id1].等级 <= 5 then
      合成几率 = 100
    end
    if math.random(100) >= 合成几率 then
      玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 - 1
      发送数据(玩家数据[id].连接id, 7, "#y/合成失败，你损失了一颗" .. 玩家数据[id].物品[self.宝石id1].名称)
    else
      发送数据(玩家数据[id].连接id, 7, "#y/你获得了一颗#r/" .. 玩家数据[id].物品[self.宝石id1].等级 .. "#y/级" .. 玩家数据[id].物品[self.宝石id1].名称)
    end

    发送数据(玩家数据[id].连接id, 3006, "66")
    道具处理类:索要打造道具(id, "包裹","合成")
  end
 end
 function 装备处理类:宝石合成1(id, 格子1, 格子2)
  self.宝石id1 = 玩家数据[id].角色.道具.包裹[格子1]
  self.宝石id2 = 玩家数据[id].角色.道具.包裹[格子2]
  if 玩家数据[id].物品[self.宝石id1]==nil or 玩家数据[id].物品[self.宝石id2]==nil then
       -- 发送数据(玩家数据[id].连接id, 7, "#y/物品不存在")
    return
  elseif  玩家数据[id].物品[self.宝石id1].名称 == "碎石锤" or 玩家数据[id].物品[self.宝石id2].类型== "碎石锤" or 玩家数据[id].物品[self.宝石id1].名称 == "超级碎石锤" or 玩家数据[id].物品[self.宝石id2].类型== "超级碎石锤"  then
      if 玩家数据[id].物品[self.宝石id1].名称~=玩家数据[id].物品[self.宝石id2].名称 then
         -- 发送数据(玩家数据[id].连接id, 7, "#y/只有相同的碎石锤才能合成")
          return
      elseif 玩家数据[id].物品[self.宝石id1].等级~=玩家数据[id].物品[self.宝石id2].等级 then
          --发送数据(玩家数据[id].连接id, 7, "#y/只有相同等级的碎石锤才能合成")
          return
      else

          local 合成几率 = 100 - 玩家数据[id].物品[self.宝石id1].等级 * 10+玩家数据[id].角色.剧情技能[1].等级*3
          玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 + 1
          玩家数据[id].物品[self.宝石id2] = nil
          玩家数据[id].角色.道具.包裹[格子2] = nil
          if math.random(100) >= 合成几率 then
            玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 - 1
            发送数据(玩家数据[id].连接id, 7, "#y/合成失败，你损失了一颗" .. 玩家数据[id].物品[self.宝石id1].名称)
          else
            发送数据(玩家数据[id].连接id, 7, "#y/你获得了一颗#r/" .. 玩家数据[id].物品[self.宝石id1].等级 .. "#y/级" .. 玩家数据[id].物品[self.宝石id1].名称)
          end

         return true

      end
    elseif  玩家数据[id].物品[self.宝石id1].名称 == "钟灵石" or 玩家数据[id].物品[self.宝石id2].类型== "钟灵石"  then
      if 玩家数据[id].物品[self.宝石id1].技能~=玩家数据[id].物品[self.宝石id2].技能 then
         -- 发送数据(玩家数据[id].连接id, 7, "#y/只有相同的特性的钟灵石才能合成")
          return
      elseif 玩家数据[id].物品[self.宝石id1].等级~=玩家数据[id].物品[self.宝石id2].等级 then
         -- 发送数据(玩家数据[id].连接id, 7, "#y/只有相同等级的钟灵石才能合成")
          return
      else
          玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 + 1
          玩家数据[id].物品[self.宝石id2] = nil
          玩家数据[id].角色.道具.包裹[格子2] = nil
          发送数据(玩家数据[id].连接id, 7, "#y/你获得了#r/" .. 玩家数据[id].物品[self.宝石id1].等级 .. "#y/级" .. 玩家数据[id].物品[self.宝石id1].名称)
          return true
      end
  elseif  玩家数据[id].物品[self.宝石id1].类型 ~= "宝石" or 玩家数据[id].物品[self.宝石id2].类型 ~= "宝石" then
   -- 发送数据(玩家数据[id].连接id, 7, "#y/只有宝石才能合成")
    return
  elseif  玩家数据[id].物品[self.宝石id1].名称 ~= 玩家数据[id].物品[self.宝石id2].名称 then
   -- 发送数据(玩家数据[id].连接id, 7, "#y/只有相同的名称的宝石才能合成")
    return
  elseif  玩家数据[id].物品[self.宝石id1].等级 ~= 玩家数据[id].物品[self.宝石id2].等级 then
   -- 发送数据(玩家数据[id].连接id, 7, "#y/只有相同的等级的宝石才能合成")
    return
  else
    if 玩家数据[id].物品[self.宝石id1].等级 ==nil then
        -- 发送数据(玩家数据[id].连接id, 7, "#y/数据等级错误，请联系GM处理")
      return
    end
    local 合成几率 = 100 - 玩家数据[id].物品[self.宝石id1].等级 * 5+玩家数据[id].角色.剧情技能[1].等级*3
    玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 + 1
    玩家数据[id].物品[self.宝石id2] = nil
    玩家数据[id].角色.道具.包裹[格子2] = nil
    if 玩家数据[id].物品[self.宝石id1].等级 <= 5 then
      合成几率 = 100
    end
    if math.random(100) >= 合成几率 then
      玩家数据[id].物品[self.宝石id1].等级 = 玩家数据[id].物品[self.宝石id1].等级 - 1
      发送数据(玩家数据[id].连接id, 7, "#y/合成失败，你损失了一颗" .. 玩家数据[id].物品[self.宝石id1].名称)
    else
      发送数据(玩家数据[id].连接id, 7, "#y/你获得了一颗#r/" .. 玩家数据[id].物品[self.宝石id1].等级 .. "#y/级" .. 玩家数据[id].物品[self.宝石id1].名称)
    end
  return true
  end

  return false
 end